iT邦幫忙

1

解LeetCode的學習筆記Day7_Reverse Integer

LFI 2025-09-28 22:14:22153 瀏覽
  • 分享至 

  • xImage
  •  

今天是紀錄LeetCode解題的第七天

第七題題目:Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-2^31, 2^31 - 1], then return 0.
給定一個整數x,回傳反轉後的x,如果反轉後的x超出有符號的32位元整數範圍,則回傳0

這題用python寫相當的簡單,我們直接來看程式碼

程式碼如下

class Solution:
    def reverse(self, x: int) -> int:
        int_min = -2**31
        int_max = 2**31 - 1
        sign = -1 if x < 0 else 1
        x = abs(x)
        rev = int(str(x)[::-1]) * sign
        if rev < int_min or rev > int_max:
            return 0
        return rev

解題思路

直接把x的數字部分當成字串反轉,sign則是記錄原本的x是否有帶負號,這裡反轉的寫法是python的切片寫法,主要有五種寫法:

  • str[start:stop:step]
  • str[start:stop]
  • str[start:]
  • str[:stop]
  • str[:]

start:起始索引(包含),預設是0
stop:結束索引(不包含),預設字串/序列長度
step:每次間隔多少索引,預設是1,step > 0 → 從左到右(正向),step < 0 → 從右到左(反向)


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言